package com.shen.server.service;

import com.shen.server.pojo.Admin;
import com.baomidou.mybatisplus.extension.service.IService;
import com.shen.server.pojo.Menu;
import com.shen.server.pojo.RespBean;
import com.shen.server.pojo.Role;
import org.springframework.security.core.Authentication;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author HMF
 * @since 2022-04-10
 */
public interface IAdminService extends IService<Admin> {

    /**
     * 登录之后返回token
    * @date: 2022/4/10
    * @param: username
    * @param: password
    * @param: request
    * @return
    */

    RespBean login(String username, String password, String code, HttpServletRequest request);

    /**
     * 根据用户名获取用户
    * @date: 2022/4/10
    * @param: username
    * @return
    */

    Admin getAdminByUserName(String username);

    /**
     * 根据用户id查询用户角色列表
    * @date: 2022/4/16
    * @param: id
    * @return
    */

    List<Role> getRolesByAdminId(Integer adminId);

    /**
     * 获取所有的操作员
    * @date: 2022/4/19
    * @param: keywords
    * @return
    */

    List<Admin> getAllAdmins(String keywords);

    /**
     * 更新用户密码
    * @date: 2022/4/24
    * @param: oldPass
    * @param: pass
    * @param: adminId
    * @return
    */

    RespBean updateAdminPwd(String oldPass, String pass, Integer adminId);

    /**
     *
     * 更新用户头像
    * @date: 2022/4/25
    * @param: url
    * @param: id
    * @param: authentication
    * @return
    */

    RespBean updateAdminUserFace(String url, Integer id, Authentication authentication);
}

